<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Indicator.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Unit.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Process.php';
/**
 * Класс для работы со значением показателя процесса 
 */
class IndicatorValue extends Entity{
	/**	Квартал */
	private $quarter;
	/**
	 * Плановое значение показателя на квартал, которое определяется 
	 * структурным подразделением сомостоятельно
	 */
	private $planValue;
	/**	Реальное значение показателя */
	private $value;
	/** Идентификатор процесса, к которому относится показатель */
	private $responsibility;
	/**
	 * Метод, возвращающий квартал
	 * @return $this->quarter Квартал
	 */
	public function getQuarter() {
		return $this->quarter;
	}
	/**
	 * Метод, устанавливающий значение квартала
	 * @param unknown_type $quarter Значение квартала
	 */
	public function setQuarter($quarter) {
		$this->quarter = (int)$quarter;
	}
	/**
	 * Метод, возвращающий плановое значение показателя на квартал, 
	 * которое определяется структурным подразделением сомостоятельно
	 * @return $this->planValue Плановое значение показателя на квартал, 
	 * которое определяется структурным подразделением сомостоятельно
	 */
	public function getPlanValue() {
		return $this->planValue;
	}
	/**
	 * Метод, устанавливающий плановое значение показателя на квартал, 
	 * которое определяется структурным подразделением сомостоятельно
	 * @param unknown_type $planValue Плановое значение показателя на квартал, 
	 * которое определяется структурным подразделением сомостоятельно
	 */
	public function setPlanValue($planValue) {
		if($planValue !== null) {
			$this->planValue = 0.0+$planValue;
		} else {
			$this->planValue = null;
		}
	}
	/**
	 * Метод, возвращающий реальное значение показателя
	 * @return $this->value Реальное значение показателя
	 */
	public function getValue() {
		return $this->value;
	}
	/**
	 * Метод, устанавливающий реальное значение показателя
	 * @param $value Реальное значение показателя
	 */
	public function setValue($value) {
		if($value !== null) {
			$this->value = 0.0+$value;
		} else {
			$this->value = null;
		}
	}
	/**
	 * Метод, возвращающий идентификатор процесса, к которому относится показатель
	 * @return $this->responsibility Идентификатор процесса, к которому 
	 * относится показатель
	 */
	public function getResponsibility() {
		return $this->responsibility;
	}
	/**
	 * Метод, устанавливающий значение идентификатора процесса, к которому относится показатель
	 * @param Responsibility $responsibility Значение идентификатора процесса, к которому
	 * относится показатель
	 */
	public function setResponsibility(Responsibility $responsibility) {
		$this->responsibility = $responsibility;
	}		
}
?>